#include "Screen.h"

// 初始化配置
void Screen::init() {
  rm67162_init();                              // 屏幕初始化
  lcd_setRotation(1);                          // 0-3  1是横向
  spr.createSprite(TFT_WIDTH, TFT_HEIGHT, 2);  // 改方向后这里长款也要同步改  - 2 bytes per pixel for 16 bit color depth (565 RGB format)
  spr.setSwapBytes(1);
  spr.fillSprite(TFT_BLACK);  // 清屏
  // spr.setTextColor(TFT_WHITE, TFT_BLACK);  // 设置字体颜色和背景色
  // spr.setTextSize(3);                      // 设置字体大小
}

// 清屏
void Screen::clear() {
  spr.fillSprite(TFT_BLACK);
}

// 将数据显示到屏幕上
void Screen::drawScreen() {
  lcd_PushColors(0, 0, spr.width(), spr.height(), (uint16_t *)spr.getPointer());
}

// 清屏 上中
void Screen::clearAndCenter() {
  spr.fillSprite(TFT_BLACK);
  spr.setTextDatum(TC_DATUM);
}

// 清屏 上左
void Screen::clearAndLeft() {
  spr.fillSprite(TFT_BLACK);
  spr.setTextDatum(TL_DATUM);
}

// 清屏 中中
void Screen::clearAndCenterCenter() {
  spr.fillSprite(TFT_BLACK);
  spr.setTextDatum(CC_DATUM);
}

void Screen::drawString(const String &string, int32_t x, int32_t y, uint8_t font) {
  spr.drawString(string, x, y, font);
}

void Screen::drawString(const String &string, int32_t x, int32_t y) {
  spr.drawString(string, x, y, 3);
}

void Screen::drawNumber(long intNumber, int32_t x, int32_t y, uint8_t font) {
  spr.drawNumber(intNumber, x, y, font);
}

void Screen::drawNumber(long intNumber, int32_t x, int32_t y) {
  spr.drawNumber(intNumber, x, y, 3);
}

void Screen::textWhite() {
  spr.setTextColor(TFT_WHITE);  // 设置字体颜色
  spr.setTextDatum(TC_DATUM);   // 设置字体对齐方式 TC_DATUM:居中对齐(基准坐标为上方的中
}
